# @Filename:    series.py
# @Author:      王佳伟
# @Time:        2025-07-15 14:01
# @Describe:    series对象
import pandas as pd
import numpy as np

# 输出数据为空
# s = pd.Series()
# print(s)

# data = np.array(['a', 'b', 'c', 'd'])
# s = pd.Series(data)
# print(s)

# 自定义索引标签（即显示索引）
# s = pd.Series(data, index=[100,101,102,103])
# print(s)

# dict 没有传入索引
# data = {'a' : 0., 'b' : 1., 'c' : 2.}
# s = pd.Series(data)
# print(s)

# 为index参数传递索引时
# s = pd.Series(data, index=['b','c','d','a'])
# print(s)

# 标量创建Series对象
# 如果data是标量值，必须提供索引
# s = pd.Series(5, index=[0, 1, 2, 3])
# print(s)

# 访问Series数据
# 位置索引访问
# s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# print(s[0])  # 位置下标
# print(s[-3:])
# print(s['a'])  # 标签下标

# 索引标签访问
# s = pd.Series([6,7,8,9,10], index=['a','b','c','d','e'])
# print(s['a'])
# print('=======')
# print(s[['a','c','d']])
# print('=======')
# print(s['f'])

# Series常用属性
s = pd.Series(np.random.randn(5))
# print(s)

# axes 以列表的形式返回所有行索引标签
# print("The axes are:")
# print(s.axes)

# dtype 返回对象的数据类型
# print("The dtype is:")
# print(s.dtype)

# empty 判断数据对象是否为空
# print("是否为空对象？")
# print(s.empty)

# ndim 查看序列的维数。根据定义，Series 是一维数据结构，因此它始终返回 1
# print(s.ndim)

# size 返回Series对象的大小（长度）
# print(s.size)

# values 以数组的形式返回Series对象中的数据
# print("输出Series中数据")
# print(s.values)

# index 查看 Series 中索引的取值范围
# 显示索引
# s = pd.Series([1,2,5,8], index=['a','b','c','d'])
# print(s.index)

# 隐式索引
# s1 = pd.Series([1,2,5,8])
# print(s1.index)

# 常用方法
# head()&tail()查看某一部分数据
# head() 返回前 n 行数据，默认显示前 5 行数据
# tail() 返回的是后 n 行数据，默认为后 5 行
# print("The original Series is:")
# print(s)
# 返回前三行数据
# print(s.head(3))

# s = pd.Series(np.random.randn(4))
# print(s)
# print(s.tail(2))

# isnull()&nonull()检测缺失值
# isnull()：如果为值不存在或者缺失，则返回 True。
# notnull()：如果值不存在或者缺失，则返回 False。
# s = pd.Series([1,2,5,None])
# print(pd.isnull(s))
# print(pd.notnull(s))





